/*
 * NB-IOT.h
 *
 *  Created on: Jul 19, 2024
 *      Author: yuxuan
 */

#ifndef NB_IOT_H_
#define NB_IOT_H_

#include <stdint.h>
#include "main.h"
#include "usart.h"
#include "top_scheme.h"
#include "stm32f4xx_it.h"
//#include "sys.h"

//设备参数定义
typedef struct
{
	uint8_t work_model;			//工作模式
	//塔石云设置
	uint8_t model;				//透传云模式使能
	uint32_t device_ID;			//设备ID
	uint32_t device_password;	//设备密码
	uint8_t channel;			//通道号

}_NB_IOT;

//工作模式
#define work_model0		0	//不启用该通道
#define work_model1		1	//TCP/UDP透传
#define work_model2		2	//MQTT透传
#define work_model3		3	//塔石DTU云连接
#define work_model4		4	//塔石IOT云连接
#define work_model5		5	//HTTP透传模式
#define work_model6		6	//保留
#define work_model7		7	//电信CWTIng云模式



//透传云模式
#define DTU_model0	0	//不开启透传云
#define DTU_model1  1	//连接塔石DTU云
#define DTU_model2  2	//连接塔石IOT云


//设备默认参数
#define NB_work_model			work_model3 //塔石DTU云连接
#define NB_model   				DTU_model1 	//连接DTU云模式
#define	NB_device_ID         	20081214   	//设备ID
#define NB_device_password 		123456   	//设备密码
#define NB_channel 				1   		//通道1


extern _NB_IOT NB_DTU;

void NB_configuration(void);//配置函数
void NB_AT_response(void);//等待响应ok
void NB_send(void);
void NB_receivedata_CRC(uint8_t *rx_data,uint8_t len);//数据校验

#endif /* NB_IOT_H_ */
